Alpha - Structural Recursion and Induction ( Extended
نویسنده
چکیده
There is growing evidence for the usefulness of name permutations when dealing with syntax involving names and name-binding. In particular they facilitate an attractively simple formalisation of common, but often technically incorrect uses of structural recursion and induction for abstract syntax trees modulo α-equivalence. At the heart of this formalisation is the notion of finitely supported mathematical objects. This paper explains the idea in as concrete a way as possible and gives a new derivation within higher-order logic of principles of α-structural recursion and induction for α-equivalence classes from the ordinary versions of these principles for abstract syntax trees.
منابع مشابه
Alpha-Structural Induction and Recursion for the Lambda Calculus in Constructive Type Theory
We formulate principles of induction and recursion for a variant of lambda calculus in its original syntax (i.e., with only one sort of names) where α-conversion is based upon name swapping as in nominal abstract syntax. The principles allow to work modulo α-conversion and implement the Barendregt variable convention. We derive them all from the simple structural induction principle on concrete...
متن کاملA Recursion Combinator for Nominal Datatypes Implemented in Isabelle/HOL
The nominal datatype package implements an infrastructure in Isabelle/HOL for defining languages involving binders and for reasoning conveniently about alpha-equivalence classes. Pitts stated some general conditions under which functions over alpha-equivalence classes can be defined by a form of structural recursion and gave a clever proof for the existence of a primitive-recursion combinator. ...
متن کاملα-Structural Recursion and Induction
How best to reconcile syntactical issues to do with name-binding and α-conversion with a structural approach to semantics? Specifically: improved forms of structural recursion and structural induction for syntactical structures. Compositionality is crucial in [programming language] semantics —it's preferable to give meaning to program constructions rather than just to whole programs.
متن کاملUnQL : A Query Language and Algebra for Semistructured DataBased on Structural
This paper presents structural recursion as the basis of the syntax and semantics of query languages for semistructured data and XML. We describe a simple and powerful query language based on pattern matching and show that it can be expressed using structural recursion, which is introduced as a top-down, recursive function, similar to the way XSL is deened on XML trees. On cyclic data, structur...
متن کاملStructural recursion with locally scoped names
This paper introduces a new recursion principle for inductively defined data modulo α-equivalence of bound names that makes use of Odersky-style local names when recursing over bound names. It is formulated in simply typed λ-calculus extended with names that can be restricted to a lexical scope, tested for equality, explicitly swapped and abstracted. The new recursion principle is motivated by ...
متن کامل